package com.mdb.open.epay.domain.dto.epay;

import com.mdb.bc.api.data.DataObjectBase;
import com.mdb.open.epay.enums.type.CertTypeEnum;
import com.mdb.open.epay.enums.type.SmsBizTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * @author liuyi
 * @date 2019/11/14
 **/
@Data
@ApiModel(description="发送OTP验证dto对象")
public class SendOtpDto extends DataObjectBase {

    private static final long serialVersionUID = 1L;

    /**
     * 短信業務類型
     */
    @ApiModelProperty(value = "短信業務類型")
    @NotNull(message = "短信業務類型不能为空")
    private SmsBizTypeEnum smsBizType;

    /**
     * 賬號
     */
    @ApiModelProperty(value = "賬號 smsBizType为SIGN时必填")
//    @NotBlank(message = "短信業務類型不能为空")
    @Size(min=12, max = 12, message = "賬戶長度不正確")
    private String bankCardNo;

    /**
     * 手機區號
     */
    @ApiModelProperty(value = "手機區號")
    @NotBlank(message = "手機區號不能为空")
    @Size(max = 5)
    private String phoneArea;

    /**
     * 手機號
     */
    @ApiModelProperty(value = "手機號")
    @NotBlank(message = "手機號不能为空")
    @Size(min = 8, max = 11)
    private String phoneNo;

    /**
     * 證件類型
     */
    @ApiModelProperty(value = "證件類型 smsBizType为SIGN时必填")
//    @NotBlank(message = "證件類型不能为空")
    private CertTypeEnum certType;

    /**
     * 證件號碼
     */
    @ApiModelProperty(value = "證件號碼 smsBizType为SIGN时必填")
//    @NotBlank(message = "證件號碼不能为空")
    @Size(max = 32)
    private String certNo;

    /**
     * 簽約號
     */
    @ApiModelProperty(value = "簽約號 smsBizType为PAY时必填")
//    @NotBlank(message = "簽約號不能为空")
    @Size(max = 32)
    private String bankSignNo;

    /**
     * 訂單號
     */
    @ApiModelProperty(value = "訂單號 smsBizType为PAY时必填")
//    @NotBlank(message = "訂單號不能为空")
    @Size(max = 32)
    private String orderNo;

}